2024年10月にリリースされたSnowflakeの新機能・変更点のまとめ #SnowflakeDB
2024年10月にリリースされたSnowflakeの新機能・変更点のまとめ記事になります。
※注意事項:本記事ではすべての情報についての記述はせず、特筆すべきだと感じた情報だけピックしております。基本的には以下の情報を参考にしておりますので、全ての最新情報を確認したい場合は下記のURLからご確認ください。
October 31, 2024 — AWS PrivateLink in Streamlit in Snowflake が一般提供
Streamlit in Snowflake の AWS PrivateLink のサポートが一般提供となりました。これにより、ユーザーは自身の管理する VPC と Snowflake アカウント間をパブリックなインターネットを介さずに接続できます。詳細は以下をご参照ください。
October 30, 2024 — Hybrid Table が一般提供
Snowflake 上で使用できる OLTP 向けテーブルである Hybrid Table が商用 AWS リージョンにおいて一般提供となりました。従来の OLAP 向けのテーブルと組み合わせることで、Snowflake という1つのプラットフォーム上で両方のユースケースに対応するデータ基盤を構築することが可能になります。
Hybrid Table については一部制約もあるため詳細は以下をご参照ください。
October 28-30, 2024 — 8.41 Release Notes
AWS PrivateLink と Azure Private Link を使用した Snowpark からの外部ネットワーク アクセスが一般提供
Snowflake でプライベート エンドポイントを作成し、プライベート接続を使用して、Snowpark 内の UDF/UDTF またはストアド プロシージャから外部ネットワークの場所に接続できるようになりました。
詳細はそれぞれ以下をご参照ください。
AWS PrivateLink および Azure Private Link 経由の Snowpark Container Services からの外部ネットワーク アクセスがパブリックプレビュー
Snowflake でプライベート エンドポイントを作成し、Snowpark Container Services からの送信ネットワーク トラフィックにパブリック インターネットではなく AWS PrivateLink または Azure Private Link を使用できるようになりました。
詳細は以下をご参照ください。
EXECUTE IMMEDIATE FROM による Jinja2 テンプレートからレンダリングされた SQL のプレビューがサポート
Snowflake では EXECUTE IMMEDIATE FROM コマンドにより、ステージや Git リポジトリ上に配置されたファイル内のステートメントを実行することができます。また、この際 Jinja2 テンプレートファイルを使用した SQL スクリプトを実行できる機能もプレビューとなっています。
今回のアップデートで EXECUTE IMMEDIATE FROM のオプションにDRY_RUN
が追加されレンダリングされたファイルを実行せずにプレビューできるようになりました。使用イメージは以下の通りです。
公式ドキュメント記載の以下のような SQL ファイルをステージに配置したとします。
--!jinja2
{% if DEPLOYMENT_TYPE == 'prod' %}
{% set environments = ['prod1', 'prod2'] %}
{% else %}
{% set environments = ['dev', 'qa', 'staging'] %}
{% endif %}
{% for environment in environments %}
CREATE DATABASE {{ environment }}_db;
USE DATABASE {{ environment }}_db;
CREATE TABLE {{ environment }}_orders (
id NUMBER,
item VARCHAR,
quantity NUMBER);
CREATE TABLE {{ environment }}_customers (
id NUMBER,
name VARCHAR);
{% endfor %}
このファイルに対してDRY_RUN = TRUE
とし EXECUTE IMMEDIATE FROM を実行します。
EXECUTE IMMEDIATE FROM @my_int_stage/sample.sql
USING (DEPLOYMENT_TYPE => 'prod')
DRY_RUN = TRUE
;
一部空の行を削除していますが、以下のように出力され、レンダリングされたファイルの内容を確認することができます。
--!jinja2
CREATE DATABASE prod1_db;
USE DATABASE prod1_db;
CREATE TABLE prod1_orders (
id NUMBER,
item VARCHAR,
quantity NUMBER);
CREATE TABLE prod1_customers (
id NUMBER,
name VARCHAR);
CREATE DATABASE prod2_db;
USE DATABASE prod2_db;
CREATE TABLE prod2_orders (
id NUMBER,
item VARCHAR,
quantity NUMBER);
CREATE TABLE prod2_customers (
id NUMBER,
name VARCHAR);
Snowflake からの Jinja2 テンプレートを使用したファイルの実行については以下をご参照ください。
合成データを生成できる GENERATE_SYNTHETIC_DATA 関数がパブリックプレビュー
入力テーブルのサンプル データに基づいて、出力テーブルに合成データを生成できる GENERATE_SYNTHETIC_DATA システム関数がプレビューとなりました。Snowflake では、コピュラを利用して、元のデータ セットに統計的に近い合成データを生成します。
詳細は以下をご参照ください。
内部ステージに対するネットワークポリシーで含めることがきる識別子数の増加
内部ステージを保護するために使用されるネットワークポリシーに対するネットワーク識別子の数が増加しました。この制限は、Snowflake のエディションによって異なるため、以下もあわせてご参照ください。
バインド変数のサポートが拡張
バインド変数のサポートが拡張され、COPY INTO <table> ステートメントのステージ名やその他の一部パラメーターに対してバインド変数を使用することができるようになりました。これによりCOPY コマンドによるロード時に動的にパスやオプションをコントロール可能です。
詳細は以下をご参照ください。
October 21-23, 2024 — 8.40 Release Notes
Trust Center: 新しい Threat Intelligence スキャナー パッケージ が提供開始
Snowflake アカウントのセキュリティリスクを評価、監視できる機能である Trust Center に新たなスキャナー パッケージ として Threat Intelligence スキャナー パッケージが追加されました。
Snowflake Trust Center ではスキャナー パッケージ毎に異なる評価指標が提供されます。Threat Intelligence スキャナー パッケージでは、ユーザーの TYPE プロパティ毎に MFA やネットワークポリシーの適用状況に応じてリスクを分類し、報告します。
詳細は以下をご参照ください。
自動クラスタリングのコスト見積りに使用できる SYSTEM$ESTIMATE_AUTOMATIC_CLUSTERING_COSTS が一般提供
テーブルの自動クラスタリングにかかるコストを見積る際に使用できるシステム関数であるSYSTEM$ESTIMATE_AUTOMATIC_CLUSTERING_COSTS が一般提供となりました。
テーブルとクラスタリングに使用するキーを指定することで、初期クラスタリングおよび再クラスタリングを含む、自動的なバックグラウンドメンテナンスにかかるコストの推定結果を返します。
詳細は以下をご参照ください。
Snowflake REST API が一般提供
Snowflake アカウント内のリソース管理に使用できる Snowflake REST API が一般提供となりました。さらに API で管理可能なリソースも追加されています。
Snowflake REST API の詳細は以下をご参照ください。
SERVERLESS_ALERT_HISTORY 関数のサポートがパブリックプレビュー
サーバーレス アラートの使用履歴を参照する際に使用できる SERVERLESS_ALERT_HISTORY テーブル関数が提供されました。これによりサーバレスアラートの実行履歴や各アラートの実行で消費されたクレジットを確認できます。
詳細は以下をご参照ください。
October 21, 2024 — Document AI が一般提供
Snowflake 独自の大規模言語モデルである Snowflake Arctic-TILT (Text Image Layout Transformer) を搭載した Document AI が一般提供となりました。Document AI は、請求書や契約書などのドキュメントからの情報抽出に利用できます。
Document AI については以下の記事でも紹介されていますので、あわせてご覧ください。
October 18, 2024 —Apache Iceberg™ tables の Snowflake Open Catalog のサポートが一般提供
Snowflake の Apache Iceberg テーブルと、以前は Polaris Catalog と呼ばれていた Snowflake Open Catalog との統合のサポートが一般提供となりました。
Snowflake Open Catalog は Apache Iceberg Rest Catalog API を提供しているため、Apache Iceberg Rest カタログ仕様をサポートするあらゆるクエリ エンジンからクエリすることができます。
Snowflake から Snowflake Open Catalog を使用する Iceberg Table の作成については、以下で詳しく紹介されているので、こちらもぜひご覧ください。
October 07-09, 2024 — 8.38 Release Notes (with behavior changes)
ステージ上のファイルで 16 MB を超えるオブジェクトのクエリがサポート
これまでは 16 MB を超えるブジェクトを含むファイルをクエリするとエラーとなっていましたが、ステージ上のファイルで最大 128 MB のオブジェクトまでクエリできるようになりました。
16 MBを超えるオブジェクトを列に格納することは依然としてできないため、ご注意ください。この場合、格納前に大きなオブジェクトを複数の行に分割するなどの対応が必要です。
詳細は以下をご参照ください。
データ品質モニタリングに使用できる新しい SYSTEM$DATA_METRIC_SCAN 関数がサポート
データ品質チェックに失敗したレコードを返す新しいシステム関数である SYSTEM$DATA_METRIC_SCAN がサポートされました。これにより、問題の原因となっているレコードを正確に特定することができるようになります。現在このシステム関数では、以下のデータ品質に関するシステム関数がサポートされています。
- SNOWFLAKE.CORE.NULL_COUNT
- SNOWFLAKE.CORE.NULL_PERCENT
- SNOWFLAKE.CORE.BLANK_COUNT
- SNOWFLAKE.CORE.BLANK_PERCENT
- SNOWFLAKE.CORE.DUPLICATE_COUNT
以下のように使用できます。
--サンプルデータ:EMAIL列にNULLがある
>SELECT * FROM SAMPLE_TABLE;
+----+---------+-----+---------------------+
| ID | NAME | AGE | EMAIL |
|----+---------+-----+---------------------|
| 1 | Alice | 30 | alice@example.com |
| 2 | Bob | 24 | NULL |
| 3 | Charlie | 25 | charlie@example.com |
| 4 | Diana | 22 | NULL |
+----+---------+-----+---------------------+
--SYSTEM$DATA_METRIC_SCAN によりEMAIL列がNULLであるレコードを抽出
>SELECT *
FROM TABLE(SYSTEM$DATA_METRIC_SCAN(
REF_ENTITY_NAME => 'db_test.public.sample_table',
METRIC_NAME => 'snowflake.core.null_count',
ARGUMENT_NAME => 'email'
));
+----+-------+-----+-------+
| ID | NAME | AGE | EMAIL |
|----+-------+-----+-------|
| 2 | Bob | 24 | NULL |
| 4 | Diana | 22 | NULL |
+----+-------+-----+-------+
詳細は以下をご参照ください。
October 08, 2024 — Snowflake ネイティブ アプリでの AWS PrivateLink のサポートがパブリックプレビュー
Snowflake Native App Framework での AWS PrivateLink のサポートがプレビューとなりました。これにより、ユーザーは自身の管理する VPC と Snowflake ネイティブ アプリ間をパブリックなインターネットを介さずに接続できます。注意点として、Snowpark コンテナ サービスを使用した Snowflake ネイティブ アプリについては、まだサポートされていません。
詳細は以下をご参照ください。
October 04, 2024 — 差分プライバシーが一般提供
テーブルやビューにプライバシーポリシーを設定することで、分析クエリの結果に数学的なノイズを追加し、個人のプライバシーを保護することができる Differential Privacy(差分プライバシー)が一般提供となりました。これにより特定の個人やエンティティがデータセットから識別されるリスクを低減できます。
詳細は以下をご参照ください。
October 04, 2024 — Cortex Search が一般提供
検索や大規模言語モデルによるチャットボット アプリケーションの開発を簡素化するために使用できる Cortex Search が一般提供となりました。
Cortex Search については、以下でも紹介されていますので、こちらもぜひご覧ください。
October 03, 2024 — 新しい Cortex LLM 関数である PARSE_DOCUMENT がパブリックプレビュー
ステージに保存されているドキュメントから SQL を使用してテキスト(OCR)またはレイアウトを抽出できる新しい Snowflake Cortex LLM 関数である PARSE_DOCUMENT がプレビューとなりました。
現時点では英語に最適化されており、日本語はサポートされていません。また、使用可能なリージョンについても、制限があるためご注意ください。
詳細は以下をご参照ください。
October 02, 2024 — Organization accounts がパブリックプレビュー
組織管理者が組織全体に影響するタスクを実行するために使用できる特別な種類のアカウントである Organization accounts(組織アカウント)がパブリックプレビューとなりました。
プレビュー期間中、組織管理者は引き続き ORGADMIN 対応アカウントを使用して組織に関するタスクを実行できますが、最終的には、複数アカウント組織のすべての組織レベルのタスクは組織アカウントを使用して実行されるようになるとのことです。
組織アカウントの作成方法や組織アカウントで実施するタスクの例など、詳細は以下をご参照ください。
October 01, 2024 — Cortex Fine-tuning Sharing がパブリックプレビュー
特定のタスク向けに大規模な言語モデルをカスタマイズできる Cortex Fine-tuning によって微調整されたモデルを Secure Data Sharing により他のアカウントに共有できるようになりました。
詳細は以下をご参照ください。
Behavior Change Log
2024_08 バンドルが提供開始 ※デフォルトは無効化
8.38 (2024/10/7 - 2024/10/9 リリース)で、2024_08 バンドルが提供開始となりました。先に挙動を確かめたい場合には手動でバンドルを有効化してテスト可能です。
また、このバンドルにはセキュリティに関する以下の保留中の変更が含まれます。
- Default value of DEFAULT_SECONDARY_ROLES object property on users changed to (‘ALL’)
- Multi-factor authentication enrollment enforced by default for new Snowflake accounts
このバンドルは、2025年1月のリリースでデフォルトで有効化される予定となっています。
2024_07 バンドルがデフォルトで有効化
8.38 (2024/10/7 - 2024/10/9 リリース)で、2024_07 バンドルがデフォルトで有効化されました。このバンドルは、2025年1月のリリースで一般的に有効化される予定となっています。
2024_06 バンドルが一般的に有効化
8.38 (2024/10/7 - 2024/10/9 リリース)で、2024_06 バンドルが一般的に有効化されました。
おまけ:Modern Data Stack全般の最新情報
Snowflakeも含め、Modern Data Stack 全般の最新情報についても、定期的にブログにまとめて投稿されています!こちらもぜひご覧ください。